package com.billing.model.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.billing.model.entity.TMaindata;

public interface MaindataBeanMapper {
	/**
	 * 新增审批实例数据
	 * @param leave
	 * @return
	 */
	public int insertTMaindata(TMaindata maindata);
	/**
	 * 根据id获取实例数据
	 * @param id
	 * @return
	 */
	public TMaindata selectTMaindataById(@Param("id")String id);
	
	/**
	 * APP根据id获取流转实例数据
	 * @param id
	 * @return
	 */
	public TMaindata getMaindataById(@Param("id")String id);
	/**
	 * 更新记录数据
	 * @param record
	 * @return
	 */
	public int updateTMaindata(TMaindata maindata);
	/**
	 * 获取实例数据
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param status 审批文档状态
	 * @param searchStr 搜索条件
	 * @return
	 */
	public List<TMaindata> getTMyApplyMaindataList(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("status")String status,@Param("searchStr")String searchStr,
					@Param("currentPage")int currentPage,@Param("pageSize")int pageSize);
	/**
	 * 获取未审批实例数据
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param searchStr 搜索条件
	 * @return
	 */
	public List<TMaindata> getNOHandleMaindataList(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("searchStr")String searchStr,
					@Param("currentPage")int currentPage,@Param("pageSize")int pageSize);
	/**
	 * 获取已审批实例数据
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param searchStr 搜索条件
	 * @return
	 */
	public List<TMaindata> getYesHandleMaindataList(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("searchStr")String searchStr,
					@Param("currentPage")int currentPage,@Param("pageSize")int pageSize);
	/**
	 * 获取实例条数
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param status 审批文档状态
	 * @param searchStr 搜索条件
	 * @return
	 */
	public int getTMyApplyMaindataNum(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("status")String status,@Param("searchStr")String searchStr);
	/**
	 * 获取待审批的条数
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param status 审批文档状态
	 * @param searchStr 搜索条件
	 * @return
	 */
	public int getNoHandleMaindataNum(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("searchStr")String searchStr);
	/**
	 * 获取已审批的条数
	 * @param userid 
	 * @param doctype 审批文档类型
	 * @param status 审批文档状态
	 * @param searchStr 搜索条件
	 * @return
	 */
	public int getYesHandleMaindataNum(@Param("userid")String userid,@Param("doctype")String doctype,
					@Param("searchStr")String searchStr);
	
	/**
	 * 获取所有实例数据
	 * @return
	 */
	public List<TMaindata> getAllMaindataList(@Param("username")String username,@Param("status")String status,
			@Param("starttime")Long starttime,@Param("endtime")Long endtime,@Param("organizationid")int organizationid,
			@Param("currentPage")int currentPage,@Param("pageSize")int pageSize);
	/**
	 * 获取所有实例数据条数数量
	 * @return
	 */
	public int getAllMaindataListNum(@Param("username")String username,@Param("status")String status,
			@Param("starttime")Long starttime,@Param("endtime")Long endtime,@Param("organizationid")int organizationid,
			@Param("currentPage")int currentPage,@Param("pageSize")int pageSize);
	
	/**
	 * 根据实际获取所有审批实例
	 * @return
	 */
	public List<TMaindata> getAllMaindataListStatus(@Param("userid")String userid,@Param("status")String status,
			@Param("starttime")Long starttime,@Param("endtime")Long endtime,@Param("organizationid")int organizationid);
	/**
	 * 根据用户id查询实例数据条数数量
	 * @param name
	 * @param status
	 * @param starttime
	 * @param endtime
	 * @param organizationid
	 * @param userid
	 * @return
	 */
	public int getMaindataListNumById(@Param("username")String name, @Param("status")String status, @Param("starttime")Long starttime, @Param("endtime")Long endtime, 
			@Param("organizationid")int organizationid,@Param("userid")Integer userid);
	/**
	 * 根据用户id获取审批实例
	 * @param name
	 * @param status
	 * @param starttime
	 * @param endtime
	 * @param organizationid
	 * @param i
	 * @param pageSize
	 * @return
	 */
	public List<TMaindata> getMaindataListById(@Param("username")String name, @Param("status")String status, @Param("starttime")Long starttime, @Param("endtime")Long endtime,
			@Param("organizationid")int organizationid, @Param("currentPage")int currentPage, @Param("pageSize")int pageSize,@Param("userid")int userid);
	/**
	 * 查询当前用户的审批实例条数
	 * @param userid
	 * @return
	 */
	public int getMyApproveListNum(@Param("userid")String userid,@Param("searchStr")String searchStr);
	/**
	 * 查询当前用户相关的审批实例
	 * @param userid
	 * @return
	 */
	public List<TMaindata> getMyApproveList(@Param("userid")String userid, @Param("currentPage")int currentPage, @Param("pageSize")int pageSize,
			@Param("searchStr")String searchStr);
	/**
	 * 查询最新待办
	 * @param userid
	 * @return
	 */
	public List<TMaindata> getRecentMaindata(String userid);
}
